A data frame object is typically a rectangular, columnar data structure used for data-driven applications, machine learning, and other workloads. Data frames are often immutable, which provides several benefits. As a first benefit, data can be shared in parallel among multiple workers without the need for locking, write consistency, or other mechanisms. As a second benefit, an application program interface (API) can control against side effects so API callers have no unexpected modifications to data frames passed to a function or sub-procedure.
The downside of immutable data frames is modifications and transformations can result in significant copying. For instance, a data scientist doing data exploratory work may modify data sets using data frames. Using today's data frame technology, the data scientist would need to either (a) copy an entire data frame to modify and then rerunning analysis on the modified data frame, or (b) use a mutable data frame that does not have the benefits of an immutable data frame. This can make such data exploratory work either memory-intensive or prone to computational errors.